package homework.xuluoxi;

/*
 * 作业名称：统计数字次数
 * 作业功能：统计字符串中每个数字字符串出现的次数
 * 学    员：徐罗希
 * 版    本：V1.0
 * 备    注：模块三作业
 */

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class DigitStatistics {

    public static void main(String[] args) {

        // 1、准备要求的字符串，并将其转换成字符数组
        String str = "123,456,789,123,456";
        char[] ch = str.toCharArray();

        // 2、将数组中的数字按顺序拆出放入集合的key位，并用value位纪录出现次数
        Map<String, Integer> myMap = new HashMap<>();
        String myStr = "";
        for (int i = 0; i <= ch.length - 1; i ++) {
            if (Character.isDigit(ch[i])) {
                myStr = myStr + ch[i];
            }
            if (!Character.isDigit(ch[i]) || i == ch.length - 1) {
                if (!myMap.containsKey(myStr)) {
                    myMap.put(myStr, 1);
                    myStr = "";
                }
                else {
                    myMap.put(myStr, myMap.get(myStr) + 1);
                    myStr = "";
                }
            }
        }

        // 3、提取集合中所有的key值，并打印最后结果
        Set<String> keySet = myMap.keySet();
        System.out.println("该字符串中：");
        for (String key : keySet) {
            System.out.println("数字" + key + "出现了" + myMap.get(key) + "次");
        }
    }
}
